package org.zjx.analysis.analyze;

import java.awt.image.BufferedImage;
import java.util.List;
import java.util.Optional;

/**
 * 分析管理器接口
 */
public interface AnalysisManager {

    /**
     * 注册图片分析器
     */
    void registerAnalyzer(ImageAnalyzer analyzer);

    /**
     * 注销图片分析器
     */
    void unregisterAnalyzer(String analyzerName);

    /**
     * 获取所有注册的分析器
     */
    List<ImageAnalyzer> getAnalyzers();

    /**
     * 快速判断哪个分析器匹配当前图片
     * 只做轻量级检查，不进行详细分析
     *
     * @param image 要判断的图片
     * @return 匹配的分析器，如果没有匹配返回空
     */
    Optional<ImageAnalyzer> findMatchedAnalyzer(BufferedImage image);

}